perm filename RCV.BH[UP,DOC]12 blob sn#219392 filedate 1976-06-11 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Nhe RCV program					Dec 6, 1974
C00025 ENDMK
C⊗;
Nhe RCV program					Dec 6, 1974
Y
This program is provided to allow MAIL messages to be selectively
deleted, listed, or saved as desired.  The program is called by
simply entering the monitor command RCV.  All mail files which can
be construed as being for you are offered for your perusal; if you
are logged in as [PRJ,PRG], mail files for PRG or [PRJ,PRG] are
automatically listed; mail files for [PRJ,*] or [otherproj,PRG] are
announced if they exist and you are asked whether or not you wish to
edit them.  It is also possible to edit other users' mail files with
RCV by giving an argument, e.g., "RCV BH"; this argument can be
PRG or PRJ,PRG or PRJ, or any of those inside brackets.  In this
case, mail for PRG, [PRJ,PRG], or [PRJ,*] respectively will be
listed automatically, and you will be asked about [anyproj,PRG],
[otherproj,PRG] (or just PRG), or [PRJ,anyprog] respectively.
If there is a message file exactly matching the argument (or your
prg if no argument), it will be edited before any other files.
RCV * will edit NOTICE.TXT[2,2].

RCV also allows editing of the files created by the News Service
automatic notification feature; the command "RCV \" (or "RCV \arg") will
examine the news service notices first and also present mail files.

It is also possible to use RCV on files not in [2,2] (such as saved
message files previously created with RCV) with a command like:
	RCV #filespec
with default of DSK:SAVED.MSG in your (alias) disk area.  The conventions
given below for output file specs also apply here.

The special command RCV GRIPES will allow editing of the messages
sent by the GRIPE command.

Finally, an argument of the form ?PRG will type the plan file for
user PRG, if there is one.  In this case, the file is merely typed,
not edited.

*** NOTE: ONCE RCV HAS OPENED A MESSAGE FILE, YOU SHOULD EXIT ONLY ***
*** BY TYPING "E" TO AN OPTION REQUEST, AS EXPLAINED BELOW. TYPING ***
*** <CALL> TO EXIT MAY RESULT IN LOSING SOME OF YOUR MESSAGE TEXT! ***

When a mail file is opened, messages are typed out one at a time, and
for each message, you may select several processing options, in the format
	<options> [ <space> <filename> ] <cr>
where the [...] represents an optional argument.  Each option is represented
by a letter; more than one may be used, except that a few options must be
used alone, as noted below.  The filename may be specified if you select
the C (copy) or T (transfer) option.  For help in specifying a file, use ?
as the filename.  Here are the option letters which select a final
disposition for the message:
	S	Save the message in the mail file.
	D	Delete it from the mail file.
	C	Copy it to a file of your choice.
	T	Transfer it to a file.  Like CD.
	L	LPT spool it.
	X	XGP spool it.
	K	Transfer it to a special file which will be typed automatically
		when you log out (KJOB).
If none of the above are used, the message will be Saved.  Combinations may
be used, e.g., LD will spool the message on the LPT and also delete it from the
mail file.  Along with any of the above (or alone, implying S) may be used
at most one of the following editing options:
	A	Append to the message from the terminal.
	Z	(Stanford displays only) Edit the message line-by-line
		using the system line editor.  If you need help with this
		facility, type <control><meta>? after entering the line
		editing mode.
	M	(Stanford displays only) Modify the message by running
		the text editor, E, with that message as its input.
		Return from E by typing <control>X RUN.
Along with any of the above, or alone, can be used the following option
letters to avoid seeing more messages:
	E	Exit, and enter spooling requests if L or X has been used.
	N	Go to the Next mail file, e.g., mail for your [PRJ,PRG] if any.
If the message was longer than the amount RCV types out before asking
for option requests, the following option may also be used along with
any others specified:
	Q	Quiet processing; do not type out the remainder of the
		message while processing it as usual.
Note: E or N with no other options implies Q automatically.
Alternatively, any of the following may be used as the only option, for
special processing:
	P	Postpone the decision for this message.  This applies only
		if the message was longer than the amount RCV types out
		before asking for options, and you wish to see the rest
		of the message before choosing options.
	?	Types this information.
Spooling requested by L or X is not done until RCV is exited (by typing
E to an option request, or by running out of input).  The default
filename for C and T is DSK:SAVED.MSG on your alias area.
Filenames may only be given along
with a C or T option; if C or T is used without a filename the previous
file is continued.  (The first time you will be asked for a filename,
which may be simply <cr> for SAVED.MSG.)

If you use an argument in the RCV command to edit another user's mail,
the first time you specify any option which would remove a message
from the mail file you are asked to confirm your intention by typing "Y".
Once you have confirmed such an option, however, you are not asked again.

There are two options provided at Stanford display terminals for
editing the text of a message.  The M option writes the message in
a disk file, QQRCV.TMP, and runs the E editor, which allows great
flexibility because of E's powerful editing capability.  However, it
is rather slow, because all of RCV's internal information and all the
message files must saved on the disk.  For minor corrections to a short
message, you may prefer the weaker but faster editing capability
provided in RCV itself by the Z option.  If you select that option,
the lines in your message will be presented to you one by one in your
terminal's line editor.  You may edit each line, using the normal line
editor commands, and type <cr> when done with a line.  You may also type
the following special characters (α means control, β means meta):
	α<cr>	Accept the current line as it now appears in your line
		editor buffer and stop line editing, accepting the rest
		of the message as is.
	αβD	Delete the current line.
	<alt>	Undo the changes in this line, loading a fresh copy
		into the line editor.
	αβ<cr>	Accept lines to be inserted before the current line,
		until an inserted line is terminated with α<cr>
		instead of <cr>, or <alt> is typed at a blank line.
	αβI	same as αβ<cr>.
	αD	(at the end of a line) Combine this and the next line
		and load the combined line into the line editor.
	β<cr>	Break the line at the cursor, accepting the text to
		the left of the cursor as it stands and editing the
		remaining text as a new line.
	αβA	Leave line edit mode, as for α<cr>, but accept text
		from the terminal to be appended after the existing
		text, as if the A option had been selected.
	αβ?	Type this information.
Blank lines are not presented for editing in the Z option.  In both
M and Z options, the initial header line is not edited, nor are the
spaces at the beginning of each text line in the message.

The first time you specify C or T, you are asked to specify a file name
if one was not included in the option line.  You can reply with a
standard file spec, "?", or <cr>.  <cr> uses the default file name,
DSK:SAVED.MSG in your (alias) area.  "?" will
print a helpful message and let you try again.  Thereafter, whatever file
you specified will be used for all C and T messages (the file is not
closed until you exit or select another one) until you specify a new file
name along with a C or T option as described above.  Note:  if the
specified file already exists, the new messages are added at the front.

If all messages are removed from an input file, the file is deleted
after all output files are closed, unless the input file is named
OUTGO.MSG in which case the empty file (which may actually contain
a few spaces, carriage returns, and linefeeds) will survive.

The notation ↓chars↓ may be used to get non-alphameric characters in a
filename.  In addition, a shorthand notation is provided for entering
names of mail files: if the character ∂ is the first character of the
file spec, then the device becomes DSK, the default extension MSG, and
the default ppn [2,2].  (The extension and ppn can be changed later
in the filespec.)  If the next non-blank character is not alphameric,
the filename used is ↓   prg↓, i.e., your programmer name right
adjusted.  (Note that this is your own login name, not the name whose
mail you are editing.)  You can specify a different name with the
formats  ∂prg , ∂prj,prg , ∂prj,* , or ∂prj,  (the latter uses your
own programmer name along with the specified project name).  Any of
these may be followed by .ext and/or [ppn] to change the default
values as described above.

A message may be longer than the (intentionally) relatively small 
capacity of RCV's message buffer.  In that case, you will
see as much as fits, followed by an overflow notice and an option
request.  After you enter the desired options, the remainder of the
message will be typed as it is being processed, so you may safely
use the Delete option and you will still see the rest of the message.
If you want to avoid this continued typeout, type the letter "Q"
(for Quiet) before your option choice, e.g., "QD" for Quiet Delete.
"Q" is only recognized when a message overflows.  You can postpone the
option decision until after seeing the rest of the message by typing
"P" as the option letter when first asked.  If you do that, the rest
of the message will be typed, and you will again be asked for
options.  "QP" is illegal.

RCV may be run when not logged in; however, each user can control
access to his own mail, by OPTION.TXT options.  Three possibilities
are available.  The default is no access.  To allow your mail to be
read but not modified, put

RCV:READ

in your OPTION.TXT file.  (If the not-logged-in user types RCV PRJ,PRG
the file examined is OPTION.TXT[PRJ,PRG]; for the command RCV PRG the
file is OPTION.TXT[1,PRG].)  You may also allow not-logged-in users to
edit your mail file as if they were logged in by using

RCV:WRITE

as the option.

Not-logged-in users at Stanford display terminals (Data Disc or III)
always have at least READ access to mail.

It should be noted that the normal file protection mechanism still
applies, so that most options which involve copying the message to
another file will not work when not logged in, and will cause RCV
to die horribly.  This includes C,T,K,L,X,M, and P.

There are two special options available in RCV, for reading the A.P.
news digest and for editing messages sent with the GRIPE command.
These options are provided when the RCV command is given without an
argument, if you have an OPTION.TXT file with a line of the form
RCV:DIGEST,GRIPE;	(either order, or either one alone, is ok).
The GRIPE option is intended for system wizards, while the DIGEST
option is good for people with both DIGEST and NOMAIL in their
LOGIN options.  You are asked READ DIGEST? or EDIT GRIPES? if the
appropriate files exist.  These options can be used along with READ
or WRITE, described above.  The GRIPE option only asks you about
gripes if there has been a new gripe added since the last time you
edited the gripes with RCV.

How to edit or delete EVENT notices:

If the event is more than one day in the future, the notice is in
NOTICE.TXT[2,2] and can be edited or deleted with the RCV * command.
If, while doing RCV *, you edit or delete an event message for which
a .DAY file exists, you will be asked before exiting RCV if you
want to edit that file.  (If you edit more than one such message you
may be asked more than once.)  You can then edit that copy of the
message also.

If the event is less than two days in the future, the notice has been
deleted from NOTICE.TXT and is now only in the .DAY file.  To edit
the proper file directly, give one of the commands

RCV TODAY
RCV TOMORROW

(Note: In the former case there is one other optional step, namely,
using the CANCEL command to delete the program request which is to
delete the notice from NOTICE.TXT two days before the event.  If you
don't delete the request, however, no harm is done.)

If what you want to do is change the date of an event, your best bet
is to delete the notice and start over.  The reason is that besides
changing the date in the message text itself you would have to change
the mysterious number in the message header and also move the notice
from one mysteriously named DAY file to another.

RCV has a mode for use at non-Stanford terminals, in which it
accepts TTY input in SOS representation.  The main reason for this
is to permit ?* instead of ∂ for redirecting messages to another
mail file, but it can also be used with the append option to
allow appending upper/lower case text from an upper-case-only
terminal.  The following notes apply:

1.  When RCV is started, it decides whether or not to use SOS
representation on the basis of the FCS (full character set) bit
maintained by the monitor.  This bit is set by the TTY FULL
command (or <escape>F at a Stanford display) and cleared by
TTY NO FILL (or <break>F).

2.  Whenever RCV reads an altmode character from the TTY, it
will enter SOS mode and otherwise ignore the altmode, except
that if you are already in SOS mode the sequence ?<alt> will
leave that mode.  (If you are not in SOS mode, of course, the
? will be taken as a real ? and the <alt> will enter SOS mode!)

3.  These comments apply even to the original command line,
although the monitor will echo a crlf after the altmode to
confuse you.  Note that if your FCS bit is off and you want
to invoke the RCV feature which types a user's plan file,
you must say RCV ??PRG instead of RCV ?PRG as usual.

4. Under no circumstances is tty OUTPUT done via SOS
conversion.  I hate seeing all those question marks!

5.  If you are in SOS mode and type ? followed by a character
which is not defined as an SOS code, the character will be
treated, and echoed, as ascii 7; this will ring your TTY's
bell if it has one, give an error message if you are responding
to an option request, and insert a π in your message if you
are appending.